package api.object;

public class IntegerDemo {
    public static void main(String[] args) {
        //演式包装类的常用操作：
        //1)可以通过包装类来获取基本可续的取值范围：
        int max=Integer.MAX_VALUE;
        int min=Integer.MIN_VALUE;
        System.out.println("int的最大值:"+max+",最小值为:"+min);

        long max1=Long.MAX_VALUE;
        long min1=Long.MIN_VALUE;
        System.out.println("long的最大值:"+max1+",最小值为:"+min1);

        double max2=Double.MAX_VALUE;
        double min2=Double.MIN_VALUE;
        System.out.println("double的最大值:"+max2+",最小值为:"+min2);

        //2)包装类可以将字符串转换为对应的基本类型-----必须掌握
        String s1="39";
        //类型不一样转换不了
        int age=Integer.parseInt(s1);//将字符串s1转换为int类型并赋值给age
        System.out.println(age);//39----int

        String s2="123.456";
        double proce=Double.parseDouble(s2);//将字符串s2转换为double类型并赋值给price
        System.out.println(proce);//123.456----double






        //触发了自动装箱特性，会被备用为:Integer i=Integer.valueOf(5);
        Integer i=5;//基本类型到包装类-----装箱
        System.out.println(i);
        //触发了自动拆箱特性，会被编译为：int j=i.intValue();
        int j=i;//包装类到基本类型--------拆箱
        System.out.println(j);
        System.out.println(i.equals(j));//true （-128-127）直接复用
        System.out.println(i==j);//true  地址相同

        Integer i1 = new Integer(100);
        Integer i2 = new Integer(100);
        System.out.println(i1 == i2);//false ==是比较地址
        System.out.println(i1.equals(i2));//true 包装类重写了equals()比较值了

        //valueOf()方法会复用1个字节(-128-127)范围类的数据，建议使用valueOf()
        Integer i3=Integer.valueOf(100);
        Integer i4=Integer.valueOf(100);
        System.out.println(i3==i4);//true 比较的还是地址 只不过在valueOf()中(-128-127)地址是一样的，直接复用
        System.out.println(i3.equals(i4));//true 包装类重写equals()比较值了
    }
}
